package org.dandsoft.blackbox;

import java.util.Collection;

/**
 * Этот метод представляет собой окружение в котором находится ящик. Всю информацию он получает от сюда.
 * Все взаимодействие с другими ящиками производится через окружение.
 *
 * @author Vilyuzhanin Denis (Fin)
 */
public interface Enviroment {
    /**
     * Для получения всех активных сигналов в окружении
     *
     * @return
     */
    public Collection<Signal> getActiveSignals();

    /**
     * Получить коллекцию сигналов
     * @param selection Параметры выборки.
     * @return Коллекция сигналов.
     */
    public Collection<Signal> getSignalsState(SignalsSelection selection);

    /**
     * Получить активные сигналы выбранные случайным образом.
     *
     * @param signalsCount Количеситво сигналов.
     * @return Коллекция сигналов
     */
    public Collection<Signal> getRandomActiveSignals(int signalsCount);
}
